import axios from 'axios' // 引入axios
import store from '../src/vuex/store' // 引入Vuex
// import router from '../router' // 引入vue-router
// import { Message } from 'element-ui' //局部引入UI框架组件
// import Qs from 'qs'
// 环境的切换
// axios.defaults.baseURL = 'http://192.168.1.107/admin.php/' // 开发环境
// if (process.env.NODE_ENV === 'development') {
//   axios.defaults.baseURL = 'http://guanli.lyqswl.com/Admin.php/' // 开发环境
// } else if (process.env.NODE_ENV === 'debug') {
//  axios.defaults.baseURL = 'http://guanli.lyqswl.com/Admin.php/' // 调试环境
// } else if (process.env.NODE_ENV === 'production') {
  axios.defaults.baseURL = 'http://guanli.lyqswl.com/Admin.php/' // 生产环境
// }

// 请求超时时间
axios.defaults.timeout = 20000;

// 请求拦截器
axios.interceptors.request.use(
    config => {
      // console.log("请求数据",config.data)
        // const token = getCookie('名称');注意使用的时候需要引入cookie方法，推荐js-cookie
        if(config.method == "get"){
          if(sessionStorage.getItem("token")){
            //config.params.tk = sessionStorage.getItem("token")
          }
        }
        if(config.method == "post"){
          if(localStorage.getItem("token")){
            config.data.tk = localStorage.getItem("token")
          }
        }
        // console.log("请求数据111",config.data)
        // config.data = Qs.stringify(config.data);
        config.headers = {
          'Content-Type':'application/x-www-form-urlencoded'
        }
        
        // if(token){
        //   config.params = {'token':token}
        // }
        return config;
    },
    error => {
        return Promise.error(error)
    }
)

// 响应拦截器
// axios.interceptors.response.use(
//   // 服务码是200的情况
//   response => {
//     // console.log("这是返回",response.data.success)
//     if (response.status === 200) {
//         switch (response.data.success) {
//             // 未登录
//             case false:
//             Message({
//                 message: response.data.message,
//                 type: 'error',
//                 offset:380,
//                 duration:1000
//             });
//             break;
//         }
        
//         return Promise.resolve(response);
//     } else {
//         return Promise.reject(response)
//     }
//   },
//   // 服务器状态码不是200的情况
//   error => {
//     if (error.response.status) {
//       console.log(error.response.status,'dsgf');
//       switch (error.response.status) {
//         // 500请求不存在
//         case 500:
//           Message({
//             message: '网络请求不存在',
//             type: 'error',
//             offset:380,
//             duration:1000
//           });
//           router.push("/404")
//           break;
//         // 其他错误，直接抛出错误提示
//         default:
//           Message({
//             message: error.response.data.message,
//             type: 'error',
//             offset:380,
//             duration:1000
//           });
//           router.push("/404")
//           break;
//       }
//       return Promise.reject(error.response)
//     }
//   }
// )

/**
 * get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 * @param {Object} config [请求时url后直接加的参数，默认为空]
 */
export function get(url, params,config = {add: '' }) {
  return new Promise((resolve, reject) => {
    // var huancunid = sessionStorage.getItem("huancunid");
    // var param = Object(params); 
    // let key = "uid";
    // let value = huancunid
    // param[key] = value;
    axios.get(url,{
      params: params
    },config).then(res => {
      resolve(res.data)
    }).catch(err => {
      reject(err.data)
    })
  })
}
/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 * @param {Object} config [是否启用multipart/form-data格式请求，默认为false]
 */
export function post(url, params,config = {isUpload: false }) {
  
  return new Promise((resolve, reject) => {
    var keystr = localStorage.getItem("keystr");
    var param = Object(params); 
    let keys = "keystr";
    let value = keystr;
    param[keys] = value;
    axios.post(url, param(),config)
      .then(res => {
        resolve(res.data)
      })
      .catch(err => {
        reject(err.data)
      })
  })
}
